
// // 上面的代码是顺序执行的

// // var foo = function () {
// //   console.log('foo1')
// // }

// // foo()  //foo1

// // var foo = function () {
// //   console.log('foo2')
// // }

// // foo()  // foo2


// // 区别这段代码
// function foo() {
//   console.log('foo1')
// }

// foo()  // foo2

// function foo() {
//   console.log('foo2')
// }

// foo() // foo2


// todo: 练习题
// 写一个 mySetInterVal(fn, a, b),每次间隔 a,a+b,a+2b,...,a+nb 的时间，
// 然后写一个 myClear，停止上面的 mySetInterVal

function mySetInterVal(fn,a,b) {
  let timer={};
  function setOneTimer(fn,a,b){
      timer.id=setTimeout(()=>{
          console.log(a);
          fn();
          setOneTimer(fn,a+b,b);
      },a)
  }
  setOneTimer(fn,a,b);
  return timer;
}
function myClear(timer){
  clearTimeout(timer.id);
}

//test
const timer=mySetInterVal(()=>{console.log('111', new Date())},1000,2000);
setTimeout(()=>myClear(timer),20000);

